package com.xtm.exercise.base.A03Arrays;

import lombok.extern.slf4j.Slf4j;
import org.junit.Test;

import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;

@Slf4j
public class ArraysDemo {

	@Test
	public void Arrays(){
		int[] arr = {4,2,5,1,3};
		// 将数组按变成字符串
		String intStr = Arrays.toString(arr); //[4,2,5,1,3]
		//对数组的元素进行排序  数字排序  sort  Arrays.sort(arr2);
		Arrays.sort(arr); //[1, 2, 3, 4, 5]
		log.info("arr：{}",Arrays.toString(arr));

		//把数组转换成集合
		List<int[]> list = Arrays.asList(arr);

		//截取集合	list1.subList(0, 2);
		List<String> list1 = new ArrayList(4);
		list1.add("1");
		list1.add("2");
		list1.add("3");
		list1.add("4");
		System.out.println("截取前的集合："+list1); // 截取前的集合：[1, 2, 3, 4]
		List list2 = list1.subList(0, 2);
		System.out.println("截取后的集合："+list2); // 截取后的集合：[1, 2]
		List<String> list3 = list1.stream().skip(2).collect(Collectors.toList());
		System.out.println(list3);
	}

	/**
	 * 统计指定字符串中字符‘a’出现的次数
	 */
	@Test
	public void test05(){
		String s = "sssaajjjiii";
		int num = 0;//出现次数
		//循环遍历每个字符
		for (int i = 0; i < s.length(); i++) {
			//依次获取每个字符，判断是否是字符a
			if (s.charAt(i) == 'a') {
				num++;//累计统计次数
			}
		}
		System.out.println("字符a出现的次数：" + num);
	}

	/**
	 * 把一个字符串的首字母转成大写，其余为小写。(只考虑英文大小写字母字符)
	 举例：
	 helloWORLD
	 结果：
	 Helloworld
	 */
	@Test
	public void test06(){
		// 定义一个字符串
		String s = "helloWORLD";

		// 先获取第一个字符
		String s1 = s.substring(0, 1);
		// 获取除了第一个字符以外的字符
		String s2 = s.substring(1);
		// 把A转成大写
		String s3 = s1.toUpperCase();
		// 把B转成小写
		String s4 = s2.toLowerCase();
		// C拼接D
		String s5 = s3.concat(s4);
		System.out.println(s5);
		// 链式编程
		String result = s.substring(0, 1).toUpperCase()
				.concat(s.substring(1).toLowerCase());
		System.out.println(result);
	}

}
